#include <iostream>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <signal.h>
#include <vector>
// #include <jsoncpp/json/json.h>
#include <boost/algorithm/string.hpp>
#include <ctemplate/template.h>

int main(){
    std::string in_html = "./test.html";
    std::string value = "旺旺杂货铺";

    // 形成数据字典
    ctemplate::TemplateDictionary root("test");// unordered_map<>test;
    root.SetValue("key",value);
    // 获取被渲染网页对象
    ctemplate::Template* tpl = ctemplate::Template::GetTemplate(in_html,ctemplate::DO_NOT_STRIP);
    
    // 添加字段数据到网页中
    std::string out_html;
    tpl->Expand(&out_html,&root);
    //完成了渲染
    std::cout<<out_html<<std::endl;
    return 0;
}







// int main(){
//     std::string str = "1:回文数:简单:1::::5000";
//     std::vector<std::string>tokens;
//     const std::string sep = ":";
//     boost::split(tokens,str,boost::is_any_of(sep),boost::algorithm::token_compress_on/*针对 1:回文数:简单:1::::5000*/);
//     for(auto& item:tokens){
//         std::cout<<item<<std::endl;
//     }
//     return 0;
// }











// int main(){
//     // 序列化的工作
//     Json::Value root;
//     root["code"] = "mycode";
//     root["user"] = "aolang";
//     root["age"] = 18;

//     Json::StyledWriter writer;
//     std::cout<<writer.write(root)<<std::endl;
//     return 0;
// }

// void handler(int signo){
//     std::cout<<"signo: "<<signo<<std::endl;
//     exit(1);
// }
// int main(){
//     // for(int i = 1;i<=31;i++){
//     //     signal(i,handler);
//     // }
//     // 资源不足，导致OS终止，是通过信号终止的

//     // 限制运行时长
//     // struct rlimit r;
//     // r.rlim_cur = 1;
//     // r.rlim_max = RLIM_INFINITY;
//     // setrlimit(RLIMIT_CPU,&r);
//     // while(1);
//     // struct rlimit r;
//     // r.rlim_cur = 1024*1024*20;//20 M
//     // r.rlim_max = RLIM_INFINITY;
//     // setrlimit(RLIMIT_AS,&r);
//     // int count = 0;
//     // while(true){
//     //     int *p = new int[1024*1024];
//     //     count++;
//     //     std::cout<<count<<std::endl;
//     //     sleep(1);
//     // }
//     return 0;
// }